﻿using System;
using System.Runtime.Serialization;

namespace OCXS.OCXSServiceLibrary.OPCXMLDA10 {

    [DataContract(Namespace = "http://opcfoundation.org/webservices/XMLDA/1.0/")]
    public class ReadRequestItemList : System.ComponentModel.INotifyPropertyChanged {

        private ReadRequestItem[] itemsField;

        private string itemPathField;

        private System.Xml.XmlQualifiedName reqTypeField;

        private int maxAgeField;

        private bool maxAgeFieldSpecified;

        [DataMember(Order = 0)]
        public ReadRequestItem[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
                this.RaisePropertyChanged("Items");
            }
        }

        [DataMember(Order = 1)]
        public string ItemPath {
            get {
                return this.itemPathField;
            }
            set {
                this.itemPathField = value;
                this.RaisePropertyChanged("ItemPath");
            }
        }

        [DataMember(Order = 2)]
        public System.Xml.XmlQualifiedName ReqType {
            get {
                return this.reqTypeField;
            }
            set {
                this.reqTypeField = value;
                this.RaisePropertyChanged("ReqType");
            }
        }

        [DataMember(Order = 3)]
        public int MaxAge {
            get {
                return this.maxAgeField;
            }
            set {
                this.maxAgeField = value;
                this.RaisePropertyChanged("MaxAge");
            }
        }

        [DataMember(Order = 4)]
        public bool MaxAgeSpecified {
            get {
                return this.maxAgeFieldSpecified;
            }
            set {
                this.maxAgeFieldSpecified = value;
                this.RaisePropertyChanged("MaxAgeSpecified");
            }
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
